package com.wanmait.recycle.service;

import java.util.List;
import java.util.Set;

import com.github.pagehelper.PageInfo;
import com.wanmait.recycle.pojo.Article;
import com.wanmait.recycle.util.Pager;

public interface ArticleService extends CommonService<Article> {

	
	//文章上线
	void shangXian(Integer id);
	//文章下线
	void xiaXian(Integer id);
	//多文章上线
	void shangXianshangXianByIds(String ids);
	//多文章下线
	void xiaXianByIds(String ids);
	
	/*前台获得enable为1的所有文章 ZQ 03.04*/
	PageInfo<Article> findEnableArticle();
	/*根据Id查看某一篇文章*/
	Article findByArticleId(Integer id);
	
	/*判断某用户是否对某文章点赞*/
	boolean isPraise(Integer articleId,Integer userinfoId);
	/*点赞*/
	void addPraise(Integer articleId,Integer userinfoId);
	/*取消点赞*/
	void removePraise(Integer articleId,Integer userinfoId);
	
	/*判断某用户是否对某文章收藏*/
	boolean isCollect(Integer articleId,Integer userinfoId);
	/*收藏*/
	void addCollect(Integer articleId,Integer userinfoId);
	/*取消收藏*/
	void removeCollect(Integer articleId,Integer userinfoId);
	/*获得某个用户收藏的所有文章*/
	PageInfo<Article> findCollectArticle(Integer userinfoId);
	
	/*同步队列*/
	void processPraiseQueue();
	/*同步每篇文章的点赞数量*/
	void processPraiseCount();
	
	/*同步队列*/
	void processCollectQueue();
	/*同步每篇文章的收藏数量*/
	void processCollectCount();
	
	/*当一篇文章被浏览*/
	void addViewArticle(Integer articleId,String ip);
	/*判断某篇文章是否被某用户浏览过&&浏览时间是否超过24小时*/
	/*此处返回为是否可以添加浏览，true为可以，false为不可以*/
	boolean isViewArticle(Integer articleId,String ip);
	/*同步文章的浏览次数*/
	void processArticleViewCount();
	
	
	/*根据垃圾Id查询文章*/
	PageInfo<Article> findArticleByRubbishId(Integer rubbishId);
	//solr查询文章
	List<Article> seachBySolr(String keyword, Pager pager);
	/*根据用户Id查询该用户的文章*/
	PageInfo<Article> findArticleByUserinfoId(Integer userinfoId);

	
	List<Article> findArticleByRubbishIdpdz(Integer nRubbishId);
	

	/*添加文章*/
	void addArticle(Article article);
	/*文章评论数加1减1*/
	void updateCommentCount(Integer articleId,Integer count);
	/*根据用户Id和rubbishId查询文章*/
	PageInfo<Article> findArticleByUserinfoIdAndRubbishId(Integer userinfoId,Integer rubbishId);
	/*更改文章内容*/
	void updateArticle(Article article);
	/*删除文章*/
	void deleteArticle(Integer articleId);
	//下拉列表框查询
	PageInfo<Article> findAllByRubbishId(Integer rubbishId);
	//根据热度排序
	PageInfo<Article> findAllByPageAndRedu();
	//根据时间排序
	PageInfo<Article> findAllByPageAndTime();
	Article findByArticleId2(Integer id);
	
	
}
